# 第一题
class Mth3():
    @staticmethod
    def add(a, b):
        return a + b


print(Mth3.add(1, 2))


class Math4():
    def __init__(self, a, b):
        self.add = a + b  # 为什么不能return


math4 = Math4(5, 6)  # 需要调用类
print(math4.add)  # 为什么不能写print(math4.add())


class Math5():
    def add(a, b):
        return a + b


print(Math5.add(3, 5))  # 为什么不需要实例化


# 第二题
# 为上节课自定义类添加以下功能:
# 添加类属性
# 添加类私有属性
# 添加类方法或者类的私有属性
# 在__init__方法中初始化实例属性
# 在__init__方法中绑定私有实例属性
# 在自定义类中实现__str__, 自定义输出格式

class Car():
    name = '特斯拉'
    wheels = "车辆有4个轮子"  # 1添加类属性
    lights = True
    color = ''  # 也可以是None此处  None和空的区别
    __power = ''  # 2添加类私有属性
    __material = '不知道'
    __material1 = '不知道1'

    def __init__(self, a, b):
        self.distance = print(f'可以驾驶 {a} 年')  # 初始化属性
        self.__with = print(f'车的长度是 {b} 米')  # 初始化私有属性

    @classmethod
    def get_material1(cls):  # 3添加类方法或者类的私有属性
        return cls.__material1

    def __str__(self):
        return self.lights


tsl = Car(10, 5)
print(tsl.wheels)
print(tsl.lights)

# print(tsl.color(蓝色))  为啥不能这样写
tsl.color = '蓝色'
print(tsl.color)
print(tsl._Car__material)
print(tsl.get_material1())  # 是get_material1()而不是get_material1  为什么

print(tsl)

# 在自定义类中实现__str__, 自定义输出格式   不会